// 引入模块-------------------
// 引入内置模块和第三方模块
var express = require('express');
var path = require('path');
var cors = require('cors');

// 引入路由模块
var indexRouter = require('./routes/index');
var listRouter = require('./routes/list');
var searchRouter = require('./routes/search');
var detailRouter = require('./routes/detail');
var registerRouter = require('./routes/register');
var loginRouter = require('./routes/login');
var usersRouter = require('./routes/users');

// 创建服务器
var app = express();


// 中间件：----------------------
// 配置ejs模板引擎
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// 跨域
app.use(cors())

// post传参中间件
app.use(express.json());
app.use(express.urlencoded({ extended: false }));

// 静态资源中间件 **
app.use(express.static(path.join(__dirname, 'public')));
// 这里需要开放一个静态资源
app.use("/uploads",express.static(path.join(__dirname, 'uploads')));


// 路由中间件（错误中间件之前，其他中间件之后）
app.use('/', indexRouter);
app.use('/', listRouter);
app.use('/', searchRouter);
app.use('/', detailRouter);
app.use('/', registerRouter);
app.use('/', loginRouter);
app.use('/users', usersRouter);


// 404错误（倒数第二个）
app.use(function(req, res, next) {
  res.send({
    status:404,
    msg:"没有此路由"
  })
});

//统一处理业务逻辑错误（倒数第一个）
// app.use(function(err, req, res, next) {
//   res.send({
//     status:500,
//     msg:err
//   })
// });

module.exports = app;
